import * as Yup from 'yup';

/**
 * Схема валидации для карточки профиля.
 * 
 * @property { Object } username - Объект Yup для валидации отображаемого имени пользователя.
 * @property { string } username.required - Сообщение об ошибке, если не введено отобржаемое имя.
 * @property { string } username.max - Сообщение об ошибке, если имя пользователя превышает 10 символов.
 * @property { Object } email - Объект Yup для валидации email.
 * @property { string } email.required - Сообщение об ошибке, если не введен email.
 * @property { string } email.email - Сообщение об ощибке, если введенный формат email неверный.
 * @property { Object } lastname - Объект Yup для валидации фамилии.
 * @property { string } lastname.required - Сообщение об ошибке, если не введена фамилия.
 * @property { string } lastname.matches - Сообщение об ошибке, если введены не буквы.
 * @property { Object } firstname - Объект Yup для валидации имени пользователя.
 * @property { string } firstname.required - Сообщение об ошибке, если не введено имя.
 * @property { string } firstname.matches - Сообщение об ошибке, если введены не буквы.
 * @property { Object } middlename - Объект Yup для валидации отчества.
 * @property { string } middlename.required - Сообщение об ошибке если не введено отчество.
 * @property { string } middlename.matches - Сообщение об ошибке, если введены не буквы.
 * @returns { Object } - Возвращает объект Yup с заданной схемой валидации.
 */
export const validationProfileSchema = Yup.object().shape({
    username: Yup.string().required("Необходимо ввести имя").max(10, "Имя не должно превышать 10 символов"),
    email: Yup.string().required("Необходимо ввести email").matches(/^\w+([.-]?\w+)*@\w+([.-]?\w+)*(\.\w{2,3})+$/, 'Неверный формат email'),
    lastname: Yup.string().required("Необходимо ввести фамилию").matches(/^[A-Za-zА-Яа-яЁё]+$/, "Разрешены только буквы"),
    firstname: Yup.string().required("Необходимо ввести имя").matches(/^[A-Za-zА-Яа-яЁё]+$/, "Разрешены только буквы"),
    middlename: Yup.string().required("Необходимо ввести Отчество").matches(/^[A-Za-zА-Яа-яЁё]+$/, "Разрешены только буквы")
});